package com.example.demo.controller;

import com.example.demo.entity.ResultEntity;

import com.example.demo.service.serviceimpl.CategoriesServiceImpl;
import com.example.demo.vo.CategoriesVo;

import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

@RequestMapping("v2/categories/")
@CrossOrigin
@RestController
public class CategoriesController {
    @Resource
    CategoriesServiceImpl categoriesService;
    // 根据ID获取分类
    @GetMapping("getCategories")
    private ResultEntity getCategories(@RequestParam("id") Integer id) {
        ResultEntity resultEntity = new ResultEntity();
        try {
            resultEntity.setCode(0);
            resultEntity.setMsg("获取成功");
            resultEntity.setData(categoriesService.getCategories(id));
        } catch (Exception e) {
            resultEntity.setCode(-1);
            resultEntity.setMsg("分类获取失败");
            e.printStackTrace();
        }
        return resultEntity;
    }

    // 获取所有分类
    @GetMapping("getCategoriesAll")
    private ResultEntity getCategoriesAll() {
        ResultEntity resultEntity = new ResultEntity();
        try {
            resultEntity.setCode(0);
            resultEntity.setMsg("获取成功");
            resultEntity.setData(categoriesService.getCategoriesAll());
        } catch (Exception e) {
            resultEntity.setCode(-1);
            resultEntity.setMsg("分类列表获取失败");
            e.printStackTrace();
        }
        return resultEntity;
    }

    // 添加分类
    @PostMapping("addCategories")
    private ResultEntity addCategories(@RequestBody CategoriesVo categoriesVo) {
        ResultEntity resultEntity = new ResultEntity();
        try {
            if (categoriesService.addCategories(categoriesVo) > 0) {
                resultEntity.setCode(0);
                resultEntity.setMsg("添加成功");
            } else {
                resultEntity.setCode(-1);
                resultEntity.setMsg("添加失败");
            }
        } catch (Exception e) {
            resultEntity.setCode(-1);
            resultEntity.setMsg("错误");
            e.printStackTrace();
        }
        return resultEntity;
    }

    // 更新分类
    @PutMapping("updateCategories")
    private ResultEntity updateCategories(@RequestBody CategoriesVo categoriesVo) {
        ResultEntity resultEntity = new ResultEntity();
        try {
            if (categoriesService.updateCategories(categoriesVo) > 0) {
                resultEntity.setCode(0);
                resultEntity.setMsg("修改成功");
            } else {
                resultEntity.setCode(-1);
                resultEntity.setMsg("修改失败");
            }
        } catch (Exception e) {
            resultEntity.setCode(-1);
            resultEntity.setMsg("错误");
            e.printStackTrace();
        }
        return resultEntity;
    }

    // 删除分类
    @DeleteMapping("deleteCategories")
    private ResultEntity deleteCategories(@RequestParam("id") Integer id) {
        ResultEntity resultEntity = new ResultEntity();
        try {
            if (categoriesService.deleteCategories(id) > 0) {
                resultEntity.setCode(0);
                resultEntity.setMsg("删除成功");
            } else {
                resultEntity.setCode(-1);
                resultEntity.setMsg("删除失败");
            }
        } catch (Exception e) {
            resultEntity.setCode(-1);
            resultEntity.setMsg("错误");
            e.printStackTrace();
        }
        return resultEntity;
    }
}
